/*
  跨域

    1. 什么是跨域

      违背浏览器的同源策略，就会产生跨域

    2. 什么是同源策略

      协议名、域名、端口号 三者必须完全一致

      只要有一个不一样，就违背浏览器的同源策略

    3. 什么样的请求会存在跨域问题？

      只有ajax请求会存在跨域问题。
      
      普通http请求没有跨域：script、link、img、video、form 等
      服务器与服务器之间也没有跨域。

    4. 如何解决跨域？

      开发中最常用的方案：代理服务器解决跨域

        比如：在 vue3 + ts 项目，我会在 vite.config.ts 配置代理服务器
        server中配置proxy，接下来指定代理请求的前缀（/api），设置target指定转发目标服务器地址，最终设置rewrite来设置路径是否需要重写

          server: {
            proxy: {
              '/api': {
                target: '目标服务器地址',
                rewrite: path => path.replace(xxx, xxx); 
              }
            }
          }

        代理服务器解决跨域的原理？
          浏览器首先发送请求给开发服务器（代理服务器），它们符合同源策略，没有跨域。
          请求在经过开发服务器（代理服务器）转发给目标服务器，因为服务器与服务器之间没有跨域，
          所以解决跨域了~

      项目上线解决方案：
          1. cors 服务器设置响应头，来声明某些网址可以跨域
            access-control-allow-origin: http://xxx;
            access-control-allow-headers: token;
            access-control-allow-methods: POST, PUT;
            access-control-max-age: 3600;

          2. nginx 方案

      除此以外：还有 jsonp 方案，它是最早使用 jquery 或 原生 js 开发解决跨域的手段
          
        原理：利用script标签可以跨域特性从而跨域。
*/
